import re

def mobile(mobile_str):
    '''
    校验手机格式
    :param mobile_str:
    :return:
    '''

    if re.match(r'^1[3-9]\d{9}$',mobile_str):
        return mobile_str
    else:
        raise ValueError(f'{mobile_str} is not a phone number')



def regex(pattern):
    '''
    正则校验
    :param pattern:
    :return:
    '''
    def validata(value_str):
        '''
        具体校验一个字符串，根据自定义的正则表达式
        :param value_str:
        :return:
        '''

        if re.match(pattern,value_str):
            return value_str
        else:
            raise ValueError(f'{value_str} is a invalid params.')

    return validata

def email(email_str):
    '''
    校验邮箱地址格式
    :param email_str: str被校验字符串
    :return:email_str
    '''
    if re.match(r'^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)$',email_str):
        return email_str
    else:
        raise ValueError(f'{email_str} is not a valid email.')

